package com.lnj.community.service;

/**
 * 点赞服务
 * @author lnj
 * create 2024-01-13 15:59
 */
public interface LikeService {
    /**
     * 用户点赞
     * @param userId 用户id
     * @param entityType 实体类型
     * @param entityId 实体id
     * @param entityUserId 实体用户id
     */
    void like(int userId, int entityType, int entityId, int entityUserId);

    /**
     * 统计实体的点赞数量
     * @param entityType 实体类型
     * @param entityId 实体id
     * @return 点赞数量
     */
    long findEntityLikeCount(int entityType, int entityId);
    /**
     * 查询用户对实体的点赞状态
     * @param userId 用户id
     * @param entityType 实体类型
     * @param entityId 实体id
     * @return 1: 点赞, 0: 未点赞
     */
    int findEntityLikeStatus(int userId, int entityType, int entityId);

    /**
     * 查询某个用户获得的赞
     * @param userId 用户id
     * @return 赞的数量
     */
    int findUserLikeCount(int userId);


}
